package com.liveneo.adapter.mobile.service;

import java.util.List;
import com.liveneo.adapter.base.entity.PrpmCaseInfo;
import com.liveneo.adapter.base.entity.PrpmVideo;
import com.liveneo.adapter.mobile.model.dto.PrpmReplayDto;
import com.liveneo.adapter.mobile.model.dto.PrpmVideoDto;

/**
 * @Title:VideoService
 * @Description:
 * @Author:zhoupan
 * @Since:
 * @Version:1.0.0
 * @Copyright (c) 北京朗泰恒盛信息技术有限公司-版权所有
 */
public interface VideoService {
    public abstract List<PrpmVideo> getVideoList(String caseUuid) throws Exception;

    public abstract List<PrpmVideo> selectByCaseNo(String caseNo) throws Exception;

    public abstract List<PrpmVideo> selectByBean(int currentPage, int pagesize, PrpmVideoDto prpmVideoDto);

    public abstract void save(PrpmVideo video);

    public abstract void saveList(List<PrpmVideo> videos);

    public abstract PrpmVideo selectByFlowNo(String flowNo);

    public abstract void updateVideo(PrpmVideo video);

    public abstract void updateUserCodeByCaseNo(String caseNo, String userCode);

    /**
     * 查询待符合待上传理赔的数据
     * 
     * @return
     * @throws Exception
     */
    public abstract List<PrpmVideo> selectToBeUpload() throws Exception;

    /**
     * 查询待符合待上传理赔的数据
     * 
     * @return
     * @throws Exception
     */
    public abstract List<PrpmVideo> selectToBeUploadByCaseUuid(String caseUuid) throws Exception;

    public abstract List<PrpmVideo> selectToBeUploadByCaseNo(String caseNo) throws Exception;

    /**
     * 查询待符合待上传理赔的数据
     * 
     * @return
     * @throws Exception
     */
    public abstract List<PrpmVideo> selectByCaseUuidAndVideoType(String caseUuid) throws Exception;

    public abstract List<PrpmVideo> selectByCaseNoVideoTypeAndUpload(String caseNo) throws Exception;

    public abstract List<PrpmVideo> selectByUserCode(String userCode) throws Exception;

    public abstract List<PrpmVideo> selectBycaseNoAndUserCode(String caseNo) throws Exception;

    // 录像回放级联查询
    public abstract List<PrpmReplayDto> selectReplayList(int currentPage, int pagesize, PrpmReplayDto replayDto);

    public abstract void saveStartVideo(PrpmVideo video, PrpmCaseInfo prpmcaseinfo, String flowNo) throws Exception;

    public abstract List<PrpmVideo> selectVideoFail(int currentPage, int pagesize, PrpmVideo prpmVideo);

    /**
     * @Description: 根据案件uuid 获取最近一次进行视频连线处理此案件的坐席
     * @param uuid 案件UUID
     * @return
     * @ReturnType:String 坐席的中兴工号
     * @exception
     * @Since:2016-2-23 下午8:06:12
     * @Author:YJX
     */
    public abstract String getRecentAgtID(String uuid);

    public abstract PrpmVideo selectByOssUuidAndBreakPointFlag(String ossUuid);
}
